home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / sos3-2.lha / include / knl_sos.h < prev    next >
C/C++ Source or Header  |  1991-10-29  |  8KB  |  180 lines

  1. #ifndef knl_SOSI
  2. #define knl_SOSI 1
  3.  
  4. #include "knl_use.h"
  5. class _sos_Object;
  6. class _sos_Ordered_object;
  7. class _sos_Scalar_object;
  8. class _sos_String;
  9. class _sos_Named;
  10. class _sos_Type;
  11. class _sos_Object
  12. {  friend class sos_Object;
  13.    virtual sos_Offset _offset_sos_Object () { return 0; }
  14. public:
  15.    static _sos_Object* _make(sos_Typed_id&);
  16.    virtual sos_Offset _size();
  17.    void _create(sos_Typed_id&);
  18.    void _copy(sos_Typed_id&,sos_Object);
  19.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  20.    virtual void destroy(sos_Typed_id&);
  21.    virtual void assign(sos_Typed_id&,sos_Object);
  22.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  23.    virtual sos_Int hash_value(sos_Typed_id&);
  24.    virtual sos_Type type(sos_Typed_id&);
  25.    virtual sos_Bool has_type(sos_Typed_id&,sos_Type _p1);
  26.    virtual sos_Bool isa(sos_Typed_id&,sos_Type _p1);
  27.    virtual sos_Bool is_some(sos_Typed_id&,sos_Type _p1);
  28.    virtual sos_Bool is_value(sos_Typed_id&);
  29.    virtual sos_Int size(sos_Typed_id&);
  30.    virtual sos_Bool identical(sos_Typed_id&,sos_Object _p1);
  31.    virtual sos_Bool __equal(sos_Typed_id&,sos_Object _p1);
  32.    virtual sos_Bool __not_equal(sos_Typed_id&,sos_Object _p1);
  33.    virtual sos_Bool like(sos_Typed_id&,sos_Object _p1);
  34.    virtual sos_Comp_result compare_ids(sos_Typed_id&,sos_Object _p1);
  35. private:
  36.    virtual sos_Id get_type_id(sos_Typed_id&);
  37.    virtual void set_type_id(sos_Typed_id&,sos_Id);
  38. public:
  39. protected:
  40.    static void local_assign(sos_Object _p1,sos_Object _p2);
  41.    static sos_Bool local_equal(sos_Object _p1,sos_Object _p2,sos_Eq_kind _p3);
  42.    static sos_Int local_hash_value(sos_Object _p1);
  43. };
  44. extern _sos_Object *__sos_Object_obj;
  45. class _sos_Ordered_object:virtual public _sos_Object
  46. {  friend class sos_Ordered_object;
  47.    virtual sos_Offset _offset_sos_Object () { return 0; }
  48.    virtual sos_Offset _offset_sos_Ordered_object () { return 8; }
  49. public:
  50.    static _sos_Ordered_object* _make(sos_Typed_id&);
  51.    virtual sos_Offset _size();
  52.    void _create(sos_Typed_id&);
  53.    void _copy(sos_Typed_id&,sos_Ordered_object);
  54.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  55.    virtual void destroy(sos_Typed_id&);
  56.    virtual void assign(sos_Typed_id&,sos_Object);
  57.    static void local_assign(sos_Ordered_object,sos_Object);
  58.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  59.    static sos_Bool local_equal(sos_Ordered_object,sos_Object,sos_Eq_kind);
  60.    virtual sos_Int hash_value(sos_Typed_id&);
  61.    static sos_Int local_hash_value(sos_Ordered_object);
  62.    virtual sos_Comp_result compare(sos_Typed_id&,sos_Ordered_object _p1);
  63.    virtual sos_Bool __less(sos_Typed_id&,sos_Ordered_object _p1);
  64.    virtual sos_Bool __less_equal(sos_Typed_id&,sos_Ordered_object _p1);
  65.    virtual sos_Bool __greater(sos_Typed_id&,sos_Ordered_object _p1);
  66.    virtual sos_Bool __greater_equal(sos_Typed_id&,sos_Ordered_object _p1);
  67. protected:
  68. };
  69. extern _sos_Ordered_object *__sos_Ordered_object_obj;
  70. class _sos_Scalar_object:virtual public _sos_Object
  71. {  friend class sos_Scalar_object;
  72.    virtual sos_Offset _offset_sos_Object () { return 0; }
  73.    virtual sos_Offset _offset_sos_Scalar_object () { return 8; }
  74. public:
  75.    static _sos_Scalar_object* _make(sos_Typed_id&);
  76.    virtual sos_Offset _size();
  77.    void _create(sos_Typed_id&);
  78.    void _copy(sos_Typed_id&,sos_Scalar_object);
  79.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  80.    virtual void destroy(sos_Typed_id&);
  81.    virtual void assign(sos_Typed_id&,sos_Object);
  82.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  83.    virtual sos_Int hash_value(sos_Typed_id&);
  84. protected:
  85.    static void local_initialize(sos_Scalar_object _p1);
  86.    static void local_finalize(sos_Scalar_object _p1);
  87.    static void local_assign(sos_Scalar_object _p1,sos_Object _p2);
  88.    static sos_Bool local_equal(sos_Scalar_object _p1,sos_Object _p2,sos_Eq_kind _p3);
  89.    static sos_Int local_hash_value(sos_Scalar_object _p1);
  90. };
  91. extern _sos_Scalar_object *__sos_Scalar_object_obj;
  92. class _sos_String:virtual public _sos_Ordered_object
  93. {  friend class sos_String;
  94.    virtual sos_Offset _offset_sos_Object () { return 0; }
  95.    virtual sos_Offset _offset_sos_Ordered_object () { return 8; }
  96.    virtual sos_Offset _offset_sos_String () { return 8; }
  97. public:
  98.    static _sos_String* _make(sos_Typed_id&);
  99.    virtual sos_Offset _size();
  100.    void _create(sos_Typed_id&);
  101.    void _copy(sos_Typed_id&,sos_String);
  102.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  103.    virtual void destroy(sos_Typed_id&);
  104.    virtual void assign(sos_Typed_id&,sos_Object);
  105.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  106.    virtual sos_Int hash_value(sos_Typed_id&);
  107.    virtual sos_Cstring make_Cstring(sos_Typed_id&);
  108.    virtual void assign_Cstring(sos_Typed_id&,sos_Cstring _p1);
  109.    virtual void __plus_assign(sos_Typed_id&,sos_String _p1);
  110.    virtual sos_Int size(sos_Typed_id&);
  111.    virtual sos_Comp_result compare(sos_Typed_id&,sos_Ordered_object _p1);
  112.    virtual sos_Int get_length(sos_Typed_id&);
  113. private:
  114.    virtual void set_length(sos_Typed_id&,sos_Int);
  115.    virtual sos_Offset get_address(sos_Typed_id&);
  116.    virtual void set_address(sos_Typed_id&,sos_Offset);
  117. public:
  118. protected:
  119.    static void local_initialize(sos_String _p1);
  120.    static void local_finalize(sos_String _p1);
  121.    static void local_assign(sos_String _p1,sos_Object _p2);
  122.    static sos_Bool local_equal(sos_String _p1,sos_Object _p2,sos_Eq_kind _p3);
  123.    static sos_Int local_hash_value(sos_String _p1);
  124. };
  125. extern _sos_String *__sos_String_obj;
  126. class _sos_Named:virtual public _sos_Object
  127. {  friend class sos_Named;
  128.    virtual sos_Offset _offset_sos_Object () { return 0; }
  129.    virtual sos_Offset _offset_sos_Named () { return 8; }
  130. public:
  131.    static _sos_Named* _make(sos_Typed_id&);
  132.    virtual sos_Offset _size();
  133.    void _create(sos_Typed_id&);
  134.    void _copy(sos_Typed_id&,sos_Named);
  135.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  136.    virtual void destroy(sos_Typed_id&);
  137.    virtual void assign(sos_Typed_id&,sos_Object);
  138.    static void local_assign(sos_Named,sos_Object);
  139.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  140.    static sos_Bool local_equal(sos_Named,sos_Object,sos_Eq_kind);
  141.    virtual sos_Int hash_value(sos_Typed_id&);
  142.    static sos_Int local_hash_value(sos_Named);
  143.    virtual sos_String get_name(sos_Typed_id&);
  144.    virtual void set_name(sos_Typed_id&,sos_String _p1);
  145. protected:
  146. };
  147. extern _sos_Named *__sos_Named_obj;
  148. class _sos_Type:virtual public _sos_Named
  149. {  friend class sos_Type;
  150.    virtual sos_Offset _offset_sos_Object () { return 0; }
  151.    virtual sos_Offset _offset_sos_Named () { return 8; }
  152.    virtual sos_Offset _offset_sos_Type () { return 8; }
  153. public:
  154.    static _sos_Type* _make(sos_Typed_id&);
  155.    virtual sos_Offset _size();
  156.    void _create(sos_Typed_id&);
  157.    void _copy(sos_Typed_id&,sos_Type);
  158.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  159.    virtual void destroy(sos_Typed_id&);
  160.    virtual void assign(sos_Typed_id&,sos_Object);
  161.    static void local_assign(sos_Type,sos_Object);
  162.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  163.    static sos_Bool local_equal(sos_Type,sos_Object,sos_Eq_kind);
  164.    virtual sos_Int hash_value(sos_Typed_id&);
  165.    static sos_Int local_hash_value(sos_Type);
  166.    virtual sos_Bool is_derived_from(sos_Typed_id&,sos_Type _p1);
  167.    virtual sos_Bool is_derived_from_some(sos_Typed_id&,sos_Type _p1);
  168.    virtual sos_Bool is_scalar(sos_Typed_id&);
  169.    virtual sos_Type base(sos_Typed_id&);
  170.    virtual sos_Type root(sos_Typed_id&);
  171.    virtual sos_String get_name(sos_Typed_id&);
  172.    virtual void set_name(sos_Typed_id&,sos_String);
  173.    virtual sos_Int get_object_size(sos_Typed_id&);
  174.    virtual void set_object_size(sos_Typed_id&,sos_Int);
  175. protected:
  176. };
  177. extern _sos_Type *__sos_Type_obj;
  178. extern void _knl_init_sos();
  179. #endif
  180.